package br.com.jvet.util.testes;

import java.util.Date;
import java.util.Properties;

import javax.ejb.embeddable.EJBContainer;
import javax.naming.Context;
import javax.naming.NamingException;

import junit.framework.TestCase;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import br.com.jvet.constante.Sexo;
import br.com.jvet.constante.TipoTelefone;
import br.com.jvet.constante.UnidadeFederativa;
import br.com.jvet.entidade.Cliente;
import br.com.jvet.entidade.Telefone;
import br.com.jvet.persistencia.ClienteDAO;

public class ClienteTesteCRUD extends TestCase{

	ClienteDAO clienteDAO;

	private static EJBContainer container;

	@BeforeClass
	public static void setUpContainer() throws Exception {
		Properties props = new Properties();
//		props.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.LocalInitialContextFactory");
//		props.put("JvetEJB-PU.hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
//		props.put("JvetEJB-PU.hibernate.hbm2ddl.auto", "update");
        props.put("JvetEJB-PU", "new://Resource?type=DataSource");
        props.put("JvetEJB-PU.JdbcDriver", "org.hsqldb.jdbcDriver");
        props.put("JvetEJB-PU.JdbcUrl", "jdbc:hsqldb:mem:jvetdb");

		container = EJBContainer.createEJBContainer(props);
	}

	@Before
	public void setUpBeans() throws NamingException {
		clienteDAO = (ClienteDAO) container.getContext().lookup(
				"java:global/jvet/ClienteDAO");
	}

	@Test
	public void testeIncluirCliente() {
		Cliente cli = new Cliente();
		cli.getDadosCadastro().setCnpjCpf("10196985781");
		cli.getDadosCadastro().setDataNascimento(new Date());
		cli.getDadosCadastro().setDataCadastro(new Date());
		cli.getDadosCadastro().setEmail("teste@teste.com");
		cli.getDadosCadastro().setNome("Vania");
		cli.getDadosCadastro().getEndereco().setLogradouro("Rua tal");
		cli.getDadosCadastro().getEndereco().setBairro("Vila tal");
		cli.getDadosCadastro().getEndereco().setCep("21324345");
		cli.getDadosCadastro().getEndereco().setUf(UnidadeFederativa.RJ);
		cli.getDadosCadastro().getEndereco().setCidade("Rio de Janeiro");
		cli.getDadosCadastro().setSexo(Sexo.FEMININO);
		Telefone tel = new Telefone();
		tel.setTipoTelefone(TipoTelefone.CELULAR);
		tel.setDdd("21");
		tel.setTel("94560987");
		cli.getDadosCadastro().getTelefones().add(tel);
		// Animal animal = new Animal();
		// animal.setDataNascimento(new Date());
		// animal.setNome("Hulk");
		// cli.getAnimais().add(animal);
		clienteDAO.incluir(cli);

	}

}
